<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------


// 动态注册
// Route::rule('路由表达式','路由地址','请求类型','路由参数（数组）','变量规则（数组）');
/*
    路由规则:URL访问规则（包括静态规则和动态规则）,只有符合规则的路由才能正确访问;
    路由地址:实际访问的地址（可以是控制器操作、类的方法或者闭包）;
    请求类型:表示当前路由生效使用的请求类型,包括GET/POST/PUT/DELETE等,如果希望任何请求都能访问使用*号（默认值）。
    路由参数:路由匹配的条件约束或设置参数（用于检测或者解析）;
    路由变量:路由规则里面的动态变量以及PATH_INFO里面的参数都称之为路由变量;
    变量规则:路由规则中的变量的匹配规则（正则表达式）;

    支持任意请求规则
    Route::rule('new/:id','News/update');
    定义GET请求路由规则
    Route::get('new/:id','News/read');
    定义POST请求路由规则
    Route::post('new/:id','News/update');
    定义PUT请求路由规则
    Route::put('new/:id','News/update');
    定义DELETE请求路由规则
    Route::delete('new/:id','News/delete');
    所有请求都支持的路由规则
    Route::any('new/:id','News/read');
*/


use think\Route;

Route::get('home', 'index/index/index');
Route::post('ppp', 'index/index/ppp');
Route::any('ooxx','index/index/index');

// 无参模式
//Route::get('user', 'index/index/user');
// 必传参数
//Route::get('user/:id', 'index/index/user');
// 可选参数
Route::get('user/[:id]', 'index/index/user');
// 匹配参数
//Route::get('user/[:id]$', 'index/index/user');

// 闭包路由
Route::get('user/:id', function ($id){
    return '404 Not Found' . $id;
});

// 路由参数
Route::get('userlist', 'admin/user/index',['ext'=>'html|xhtml']);

// 路由的变量规则, 越容易匹配的越往后放
// http://tp5.com/index/blog/index/id/55.html
// http://tp5.com/index/blog/read/name/anna.html
// http://tp5.com/index/blog/article/year/2017/month/10/day/15.html

//Route::get('blog/:year/:month/:day', 'index/blog/article',['method'=>'get'],['year'=>'\d{4}','month'=>'\d{2}','day'=>'\d{2}']);
//Route::get('blog/:id', 'index/blog/index',['method'=>'get'],['id'=>'\d+']);
//Route::get('blog/:name', 'index/blog/read',['method'=>'get'],['name'=>'\w+']);

//// 路由分组
//Route::group('blog', [
//    ':year/:month/:day'  =>
//        [
//            'index/blog/article',
//            ['method'=>'get'],
//            ['year'=>'\d{4}','month'=>'\d{2}','day'=>'\d{2}']
//        ],
//    ':id'                =>
//        [
//            'index/blog/index',
//            ['method'=>'get'],
//            ['id'=>'\d+']
//        ],
//    ':name'              =>
//        [
//            'index/blog/read',
//            ['method'=>'get'],
//            ['name'=>'\w+']
//        ]
//]);

// 生成URL
Route::get('url', 'index/index/url');

// jump
Route::get('jump', 'admin/index/jump');
// redirect
Route::get('rd', 'admin/index/rd');


// 资源路由 7条路由
Route::resource('users','rest/User');
Route::get('users/show/:id', 'rest/User/readpage');



Route::get('tt', 'admin/test/index');



// 静态注册
return [
    '__pattern__' => [
        'name' => '\w+',
    ],
    '[hello]'     => [
        ':id'   => ['index/hello', ['method' => 'get'], ['id' => '\d+']],
        ':name' => ['index/hello', ['method' => 'post']],
    ],
];
